home *** CD-ROM | disk | FTP | other *** search
/ PC Professionell 2002 September / PCpro_2002_09.ISO / techtalk / automationsuite / 247setup.exe / {app} / Free_space.sql < prev    next >
Encoding:
Text File  |  2002-07-11  |  3.2 KB  |  81 lines

  1. SELECT  'Owner: ' || seg.owner || chr(13) || chr(10) || 
  2.         'Name: ' || seg.segment_name || chr(13) || chr(10) || 
  3.         'Type: ' || seg.segment_type|| chr(13) || chr(10) || 
  4.         'Tablespace: ' || seg.tablespace_name || chr(13) || chr(10) || 
  5.         'Next extent size: ' || to_char(seg.max_extents, '999,999,999') || chr(13) || chr(10) || 
  6.         'Problem: Max extent reached' 
  7. FROM sys.dba_segments seg
  8. WHERE seg.extents = seg.max_extents 
  9.  
  10. UNION ALL 
  11.  
  12. SELECT  'Owner: ' || seg.owner || chr(13) || chr(10) || 
  13.         'Name: ' || seg.segment_name || chr(13) || chr(10) || 
  14.         'Type: ' || seg.segment_type|| chr(13) || chr(10) || 
  15.         'Tablespace: ' || seg.tablespace_name || chr(13) || chr(10) || 
  16.         'Next extent size: ' || to_char(t.next_extent, '999,999,999') || chr(13) || chr(10) || 
  17.         'Problem: Not enough space for next extent' 
  18. FROM sys.dba_segments seg,
  19.     sys.dba_tables t
  20. WHERE seg.segment_type = 'TABLE'
  21.     AND seg.segment_name = t.table_name
  22.     AND seg.owner = t.owner
  23.     AND NOT EXISTS (SELECT tablespace_name
  24.                     FROM dba_free_space free
  25.                     WHERE free.tablespace_name = t.tablespace_name
  26.                             AND free.bytes >= t.next_extent
  27.                     )
  28. UNION ALL 
  29.  
  30. SELECT  'Owner: ' || seg.owner || chr(13) || chr(10) || 
  31.         'Name: ' || seg.segment_name || chr(13) || chr(10) || 
  32.         'Type: ' || seg.segment_type|| chr(13) || chr(10) || 
  33.         'Tablespace: ' || seg.tablespace_name || chr(13) || chr(10) || 
  34.         'Next extent size: ' || to_char(i.next_extent, '999,999,999') || chr(13) || chr(10) || 
  35.         'Problem: Not enough space for next extent' 
  36. FROM sys.dba_segments seg,
  37.     sys.dba_indexes i
  38. WHERE seg.segment_type = 'INDEX'
  39.     AND seg.segment_name = i.index_name
  40.     AND seg.owner = i.owner
  41.     AND NOT EXISTS (SELECT tablespace_name
  42.                     FROM dba_free_space free
  43.                     WHERE free.tablespace_name = i.tablespace_name
  44.                             AND free.bytes >= i.next_extent
  45.                     )
  46. UNION ALL
  47.  
  48. SELECT  'Owner: ' || seg.owner || chr(13) || chr(10) || 
  49.         'Name: ' || seg.segment_name || chr(13) || chr(10) || 
  50.         'Type: ' || seg.segment_type|| chr(13) || chr(10) || 
  51.         'Tablespace: ' || seg.tablespace_name || chr(13) || chr(10) || 
  52.         'Next extent size: ' || to_char(c.next_extent, '999,999,999') || chr(13) || chr(10) || 
  53.         'Problem: Not enough space for next extent' 
  54. FROM sys.dba_segments seg,
  55.     sys.dba_clusters c
  56. WHERE seg.segment_type = 'CLUSTER'
  57.     AND seg.segment_name = c.cluster_name
  58.     AND seg.owner = c.owner
  59.     AND NOT EXISTS (SELECT tablespace_name
  60.                     FROM dba_free_space free
  61.                     WHERE free.tablespace_name = c.tablespace_name
  62.                             AND free.bytes >= c.next_extent
  63.                     )
  64. UNION ALL 
  65.  
  66. SELECT  'Owner: ' || seg.owner || chr(13) || chr(10) || 
  67.         'Name: ' || seg.segment_name || chr(13) || chr(10) || 
  68.         'Type: ' || seg.segment_type|| chr(13) || chr(10) || 
  69.         'Tablespace: ' || seg.tablespace_name || chr(13) || chr(10) || 
  70.         'Next extent size: ' || to_char(r.next_extent, '999,999,999') || chr(13) || chr(10) || 
  71.         'Problem: Not enough space for next extent' 
  72. FROM sys.dba_segments seg,
  73.     sys.dba_rollback_segs r
  74. WHERE seg.segment_type = 'ROLLBACK'
  75.     AND seg.segment_name = r.segment_name
  76.     AND seg.owner = r.owner
  77.     AND NOT EXISTS (SELECT tablespace_name
  78.                     FROM dba_free_space free
  79.                     WHERE free.tablespace_name = r.tablespace_name
  80.                             AND free.bytes >= r.next_extent
  81.                     )